<!DOCTYPE html>
<html lang="zh-CN">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="robots" content="noodp" />
        <title>PackML从会到不会——状态机（1） - 陈的错题集</title><meta name="Description" content="陈的错题集 - 个人笔记"><meta property="og:title" content="PackML从会到不会——状态机（1）" />
<meta property="og:description" content="

最近又重新在想起标准化的东西。在工控行业要说设备标准化哪个最成功的——当属PackML。所以开此坑，用于记录学习（啃标准文档ANSI/ISA 88.00.02）的过程.

状态机（Unit / Machine States）
定义（Definition）

A unit / machine state completely defines the current condition of a machine. A machine state is expressed as an ordered procedure, or programming routine, that can consist of one or more commands to other Procedural Elements1 or equipment entities, or consist of the status of a Procedural Element or equipment entity, or both. In performing the function specified by the state, the machine software will issue a set of commands to the machine Procedural Elements or equipment entities which in turn can report status.


Only one major processing activity may be active in one Machine at any time.  The linear sequence of major activities will drive a strictly sequentially ordered flow of control from one State to the next State – no  more than one state of the base model is allowed to be active in one Machine at the same time.

简而言之，就是设备状态反映了设备当前的状况。这个状态可以根据程序以及外部设备的命令(输入信号)来改变，同时需要将设备当前的状态（输出信号）反馈出来。" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://example.com/packml_01machinestate/" /><meta property="og:image" content="https://example.com/logo.png"/><meta property="article:section" content="posts" />
<meta property="article:published_time" content="2023-08-20T11:29:36+08:00" />
<meta property="article:modified_time" content="2023-08-20T11:29:36+08:00" /><meta property="og:site_name" content="陈的错题集" />
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="https://example.com/logo.png"/>

<meta name="twitter:title" content="PackML从会到不会——状态机（1）"/>
<meta name="twitter:description" content="

最近又重新在想起标准化的东西。在工控行业要说设备标准化哪个最成功的——当属PackML。所以开此坑，用于记录学习（啃标准文档ANSI/ISA 88.00.02）的过程.

状态机（Unit / Machine States）
定义（Definition）

A unit / machine state completely defines the current condition of a machine. A machine state is expressed as an ordered procedure, or programming routine, that can consist of one or more commands to other Procedural Elements1 or equipment entities, or consist of the status of a Procedural Element or equipment entity, or both. In performing the function specified by the state, the machine software will issue a set of commands to the machine Procedural Elements or equipment entities which in turn can report status.


Only one major processing activity may be active in one Machine at any time.  The linear sequence of major activities will drive a strictly sequentially ordered flow of control from one State to the next State – no  more than one state of the base model is allowed to be active in one Machine at the same time.

简而言之，就是设备状态反映了设备当前的状况。这个状态可以根据程序以及外部设备的命令(输入信号)来改变，同时需要将设备当前的状态（输出信号）反馈出来。"/>
<meta name="application-name" content="陈的错题集">
<meta name="apple-mobile-web-app-title" content="陈的错题集"><meta name="theme-color" content="#ffffff"><meta name="msapplication-TileColor" content="#da532c"><link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
        <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
        <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><link rel="manifest" href="/site.webmanifest"><link rel="canonical" href="https://example.com/packml_01machinestate/" /><link rel="next" href="https://example.com/packml_02modes/" /><link rel="stylesheet" href="/css/style.min.css"><link rel="preload" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.1/css/all.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
        <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.1.1/css/all.min.css"></noscript><link rel="preload" href="https://cdn.jsdelivr.net/npm/animate.css@4.1.1/animate.min.css" as="style" onload="this.onload=null;this.rel='stylesheet'">
        <noscript><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/animate.css@4.1.1/animate.min.css"></noscript><script type="application/ld+json">
    {
        "@context": "http://schema.org",
        "@type": "BlogPosting",
        "headline": "PackML从会到不会——状态机（1）",
        "inLanguage": "zh-CN",
        "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "https:\/\/example.com\/packml_01machinestate\/"
        },"image": ["https:\/\/example.com\/images\/Apple-Devices-Preview.png"],"genre": "posts","keywords": "pack_ml","wordcount":  2097 ,
        "url": "https:\/\/example.com\/packml_01machinestate\/","datePublished": "2023-08-20T11:29:36+08:00","dateModified": "2023-08-20T11:29:36+08:00","publisher": {
            "@type": "Organization",
            "name": "xxxx","logo": "https:\/\/example.com\/images\/avatar.png"},"author": {
                "@type": "Person",
                "name": "Jacob Chen"
            },"description": ""
    }
    </script></head>
    <body data-header-desktop="fixed" data-header-mobile="auto"><script type="text/javascript">(window.localStorage && localStorage.getItem('theme') ? localStorage.getItem('theme') === 'dark' : ('auto' === 'auto' ? window.matchMedia('(prefers-color-scheme: dark)').matches : 'auto' === 'dark')) && document.body.setAttribute('theme', 'dark');</script>

        <div id="mask"></div><div class="wrapper"><header class="desktop" id="header-desktop">
    <div class="header-wrapper">
        <div class="header-title">
            <a href="/" title="陈的错题集">💻陈的错题集</a>
        </div>
        <div class="menu">
            <div class="menu-inner"><a class="menu-item" href="/posts/"> 📜归档 </a><a class="menu-item" href="/tags/"> 🏷️标签 </a><a class="menu-item" href="/categories/"> 📂分类 </a><a class="menu-item" href="/about/"> ⭐关于 </a><span class="menu-item delimiter"></span><span class="menu-item search" id="search-desktop">
                        <input type="text" placeholder=" " id="search-input-desktop">
                        <a href="javascript:void(0);" class="search-button search-toggle" id="search-toggle-desktop" title="搜索">
                            <i class="fas fa-search fa-fw" aria-hidden="true"></i>
                        </a>
                        <a href="javascript:void(0);" class="search-button search-clear" id="search-clear-desktop" title="清空">
                            <i class="fas fa-times-circle fa-fw" aria-hidden="true"></i>
                        </a>
                        <span class="search-button search-loading" id="search-loading-desktop">
                            <i class="fas fa-spinner fa-fw fa-spin" aria-hidden="true"></i>
                        </span>
                    </span><a href="javascript:void(0);" class="menu-item theme-switch" title="切换主题">
                    <i class="fas fa-adjust fa-fw" aria-hidden="true"></i>
                </a></div>
        </div>
    </div>
</header><header class="mobile" id="header-mobile">
    <div class="header-container">
        <div class="header-wrapper">
            <div class="header-title">
                <a href="/" title="陈的错题集">💻陈的错题集</a>
            </div>
            <div class="menu-toggle" id="menu-toggle-mobile">
                <span></span><span></span><span></span>
            </div>
        </div>
        <div class="menu" id="menu-mobile"><div class="search-wrapper">
                    <div class="search mobile" id="search-mobile">
                        <input type="text" placeholder=" " id="search-input-mobile">
                        <a href="javascript:void(0);" class="search-button search-toggle" id="search-toggle-mobile" title="搜索">
                            <i class="fas fa-search fa-fw" aria-hidden="true"></i>
                        </a>
                        <a href="javascript:void(0);" class="search-button search-clear" id="search-clear-mobile" title="清空">
                            <i class="fas fa-times-circle fa-fw" aria-hidden="true"></i>
                        </a>
                        <span class="search-button search-loading" id="search-loading-mobile">
                            <i class="fas fa-spinner fa-fw fa-spin" aria-hidden="true"></i>
                        </span>
                    </div>
                    <a href="javascript:void(0);" class="search-cancel" id="search-cancel-mobile">
                        取消
                    </a>
                </div><a class="menu-item" href="/posts/" title="">📜归档</a><a class="menu-item" href="/tags/" title="">🏷️标签</a><a class="menu-item" href="/categories/" title="">📂分类</a><a class="menu-item" href="/about/" title="">⭐关于</a><a href="javascript:void(0);" class="menu-item theme-switch" title="切换主题">
                <i class="fas fa-adjust fa-fw" aria-hidden="true"></i>
            </a></div>
    </div>
</header><div class="search-dropdown desktop">
        <div id="search-dropdown-desktop"></div>
    </div>
    <div class="search-dropdown mobile">
        <div id="search-dropdown-mobile"></div>
    </div><main class="main">
                <div class="container"><div class="toc" id="toc-auto">
            <h2 class="toc-title">目录</h2>
            <div class="toc-content" id="toc-content-auto"></div>
        </div><article class="page single"><h1 class="single-title animate__animated animate__flipInX">PackML从会到不会——状态机（1）</h1><div class="post-meta">
            <div class="post-meta-line"><span class="post-author"><a href="/" title="Author" rel="author" class="author"><i class="fas fa-user-circle fa-fw" aria-hidden="true"></i>Jacob Chen</a></span>&nbsp;<span class="post-category">收录于 <a href="/categories/plc/"><i class="far fa-folder fa-fw" aria-hidden="true"></i>PLC</a></span></div>
            <div class="post-meta-line"><i class="far fa-calendar-alt fa-fw" aria-hidden="true"></i>&nbsp;<time datetime="2023-08-20">2023-08-20</time>&nbsp;<i class="fas fa-pencil-alt fa-fw" aria-hidden="true"></i>&nbsp;约 2097 字&nbsp;
                <i class="far fa-clock fa-fw" aria-hidden="true"></i>&nbsp;预计阅读 5 分钟&nbsp;</div>
        </div><div class="details toc" id="toc-static"  data-kept="">
                <div class="details-summary toc-title">
                    <span>目录</span>
                    <span><i class="details-icon fas fa-angle-right" aria-hidden="true"></i></span>
                </div>
                <div class="details-content toc-content" id="toc-content-static"><nav id="TableOfContents">
  <ul>
    <li><a href="#状态机unit--machine-states">状态机（Unit / Machine States）</a></li>
    <li><a href="#定义definition">定义（Definition）</a></li>
    <li><a href="#状态类型types-of-states">状态类型（Types of States）</a></li>
    <li><a href="#状态定义defined-states">状态定义（Defined States）</a></li>
    <li><a href="#状态转换及状态命令state-transitions-and-state-commands">状态转换及状态命令（State Transitions and State Commands）</a>
      <ul>
        <li><a href="#状态转换的例子examples-of-state-transitions">状态转换的例子（Examples of State Transitions）</a></li>
      </ul>
    </li>
    <li><a href="#状态模型state-model">状态模型（State Model）</a>
      <ul>
        <li><a href="#基本状态模型base-state-model">基本状态模型（Base State Model）</a></li>
      </ul>
    </li>
  </ul>
</nav></div>
            </div><div class="content" id="content"><!--# PackML从会到不会——状态机（1）-->
<blockquote>
<p>最近又重新在想起标准化的东西。在工控行业要说设备标准化哪个最成功的——当属PackML。所以开此坑，用于记录学习（啃标准文档ANSI/ISA 88.00.02）的过程.</p>
</blockquote>
<h2 id="状态机unit--machine-states">状态机（Unit / Machine States）</h2>
<h2 id="定义definition">定义（Definition）</h2>
<blockquote>
<p>A unit / machine state completely defines the current condition of a machine. A machine state is expressed as an ordered procedure, or programming routine, that can consist of one or more commands to other Procedural Elements1 or equipment entities, or consist of the status of a Procedural Element or equipment entity, or both. In performing the function specified by the state, the machine software will issue a set of commands to the machine Procedural Elements or equipment entities which in turn can report status.</p>
</blockquote>
<blockquote>
<p>Only one major processing activity may be active in one Machine at any time.  The linear sequence of major activities will drive a strictly sequentially ordered flow of control from one State to the next State – no  more than one state of the base model is allowed to be active in one Machine at the same time.</p>
</blockquote>
<p>简而言之，就是设备状态反映了设备当前的状况。这个状态可以根据<em><strong>程序以及外部设备的命令</strong></em>(输入信号)来改变，同时需要将<em><strong>设备当前的状态</strong></em>（输出信号）反馈出来。</p>
<p>在任何时候，一台设备中只能处于一个状态。而且从一个状态跳到下一个状态有严格有序的控制流，不允许一台机器同时激活超过一个状态。</p>
<h2 id="状态类型types-of-states">状态类型（Types of States）</h2>
<blockquote>
<p>For the purposes of understanding three machine state types are defined:</p>
<ul>
<li>Acting State:  A state which represents some processing activity.  It implies the single or repeated execution of processing steps in a logical order, for a finite time or until a specific condition has been reached.  In ANSI/ISA 88.00.01 these are referred to Transient states, those states ending in “ING”.</li>
<li>Wait State:  A state used to identify that a machine has achieved a defined set of conditions. In such a state, the machine is maintaining a status until transitioning to an Acting state. In ANSI/ISA 88.00.01 this was referred to as a “Final” or Quiescent” state.</li>
</ul>
</blockquote>
<ol>
<li>Acting State：过渡状态（代理状态）。进入这此状态后，它会在有限的时间内或到达到特定条件之后就会跳出该状态。这些状态都以“ING”结尾。主要是用来解决设备状态跳转过程中需要处理的信号。</li>
<li>Wait State：稳定状态（等待状态）。在这种状态下，设备会保持一个状态，直到转换到 Acting 状态。</li>
<li>双重状态：既是Acting State，又是Wait State。Execute是其唯一的状态。</li>
</ol>
<h2 id="状态定义defined-states">状态定义（Defined States）</h2>
<p><img
        class="lazyload"
        src="/svg/loading.min.svg"
        data-src="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e5%ae%9a%e4%b9%89.png"
        data-srcset="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e5%ae%9a%e4%b9%89.png, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e5%ae%9a%e4%b9%89.png 1.5x, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e5%ae%9a%e4%b9%89.png 2x"
        data-sizes="auto"
        alt="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-状态定义.png"
        title="状态定义" /></p>
<blockquote>
<p><em>定义中规定了状态机系统最小要求包含Stopped、Idle、Execute、Aborted四个状态</em></p>
</blockquote>
<table>
<thead>
<tr>
<th>名称</th>
<th>类型</th>
<th>描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>Aborting</td>
<td>Acting</td>
<td>用于故障瞬间的设备处理，使设备快速安全停止。<br/>在任何时候触发 <strong>abort</strong> 命令时进入该状态。执行完成之后进入 Aborted 状态。</td>
</tr>
<tr>
<td>Aborted</td>
<td>Wait</td>
<td>设备故障停机状态，需要人工处理。<br/>执行 <strong>clear</strong> 命令时退出，进入 Clearing 状态。</td>
</tr>
<tr>
<td>Clearing</td>
<td>Acting</td>
<td>进入命令时尝试清除设备故障，如果清除则进入 Stopped 状态，否则进入 Aboring 状态。</td>
</tr>
<tr>
<td>Stopping</td>
<td>Acting</td>
<td>设备停止时的处理。<br/>执行 <strong>stop</strong> 命令时进入该状态。执行此命令后，设备进入 Stopped 状态。</td>
</tr>
<tr>
<td>Stopped</td>
<td>Wait</td>
<td>完成 Stopping 状态后，进入该状态。设备停止，但与其他系统的所有通信均正常运行。<br/>执行 <strong>reset</strong> 命令时退出，进入 Resetting 状态。</td>
</tr>
<tr>
<td>Resetting</td>
<td>Acting</td>
<td>通常会导致安全装置通电，并将设备置于 Idle 状态，等待 start 命令。</td>
</tr>
<tr>
<td>Idle</td>
<td>Wait</td>
<td>完成 Resetting 状态后，进入该状态。设备空闲，表示设备做好启动准备。</td>
</tr>
<tr>
<td>Starting</td>
<td>Acting</td>
<td>设备完成启动所需经历的步骤，用于判断是否符合启动条件。<br/>处于 Idle 状态并执行 <strong>start</strong> 命令时进入该状态。执行此命令后，设备将进入 Execute 状态，设备开始执行动作（如生产）。</td>
</tr>
<tr>
<td>Execute</td>
<td>Acting、Wait</td>
<td>设备开始执行动作。根据所处的模式不同而可能执行不同的动作，如生产模式下，则正常生产；清理模式下则清理设备。</td>
</tr>
<tr>
<td>Completing</td>
<td>Acting</td>
<td>当生产目标完成时，自动从 Execute 状态进入该状态，执行完成后进入 Complete 状态。</td>
</tr>
<tr>
<td>Complete</td>
<td>Wait</td>
<td>设备完成生产目标后的停机状态。<br/>执行 <strong>reset</strong> 命令时退出，进入 Resetting 状态。</td>
</tr>
<tr>
<td>Suspending</td>
<td>Acting</td>
<td>用于进行进入 Suspended状态之前的处理。<br/>当设备的上下游不满足本设备的生产条件（如缺料）时进入该状态，执行完成后进入 Suspended 状态。</td>
</tr>
<tr>
<td>Suspended</td>
<td>Wait</td>
<td>该状态下设备不生产产品，直至外部条件恢复正常。<br/>当外部条件满足生产时退出，进入 Unsuspending 状态。</td>
</tr>
<tr>
<td>Unsuspending</td>
<td>Acting</td>
<td>从 Supended 状态恢复回 Execute 状态时的处理。</td>
</tr>
<tr>
<td>Holding</td>
<td>Acting</td>
<td>用于进行进入 Hold状态之前的处理。<br/>由于设备内部原因导致不满足生产条件（如停止按钮、人工上料等）时进入该状态，执行完成后进入 hold 状态。</td>
</tr>
<tr>
<td>Hold</td>
<td>Wait</td>
<td>该状态下设备不生产产品，直至内部条件恢复正常。<br/>当内部条件满足生产或者执行 <strong>UnHold</strong> 命令时退出，进入 Unholding 状态。</td>
</tr>
<tr>
<td>Unholding</td>
<td>Acting</td>
<td>从 Hold 状态恢复回 Execute 状态时的处理。</td>
</tr>
</tbody>
</table>
<h2 id="状态转换及状态命令state-transitions-and-state-commands">状态转换及状态命令（State Transitions and State Commands）</h2>
<blockquote>
<p>A state transition is defined as a passage from one state to another. Transitions between states will occur as a result of a local, remote, or procedural State Command. State Commands are procedural elements that in effect cause a state transition to occur.</p>
</blockquote>
<p>状态转换，即从一个状态过渡到另一个状态。而状态转换通过状态命令来进行。</p>
<blockquote>
<p>State Commands are comprised of one or a combination of the following types:</p>
<ul>
<li>Operator intervention.</li>
<li>Response to the status of one or more procedural elements.</li>
<li>Response to machine conditions.</li>
<li>The completion of an Acting state procedure.</li>
<li>Supervisory or remote system intervention.</li>
</ul>
</blockquote>
<p>状态命令则可以由一下一种或则多种组合完成：</p>
<ul>
<li>操作员干预。</li>
<li>对一个或多个程序触发的状态做出回应。</li>
<li>对设备条件（内部或外部）的响应。</li>
<li>完成Acting State的程序。</li>
<li>监督或远程系统干预。</li>
</ul>
<h3 id="状态转换的例子examples-of-state-transitions">状态转换的例子（Examples of State Transitions）</h3>
<p><img
        class="lazyload"
        src="/svg/loading.min.svg"
        data-src="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2.png"
        data-srcset="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2.png, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2.png 1.5x, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2.png 2x"
        data-sizes="auto"
        alt="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-状态转换.png"
        title="状态转换及状态命令" /></p>
<ol>
<li><em>使用同一个物理接口来同时表示 reset 命令和 clear 命令是比较常见的用法。</em></li>
<li><em>允许在 Idle、Complete、Stopped 和 Resetting 状态下执行 stop 或者 abort 命令。</em></li>
</ol>
<p><img
        class="lazyload"
        src="/svg/loading.min.svg"
        data-src="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2_%e5%ae%9e%e6%9c%ba.png"
        data-srcset="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2_%e5%ae%9e%e6%9c%ba.png, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2_%e5%ae%9e%e6%9c%ba.png 1.5x, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e7%8a%b6%e6%80%81%e8%bd%ac%e6%8d%a2_%e5%ae%9e%e6%9c%ba.png 2x"
        data-sizes="auto"
        alt="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-状态转换_实机.png"
        title="状态转换实机案例" /></p>
<h2 id="状态模型state-model">状态模型（State Model）</h2>
<blockquote>
<p>A State Model completely defines the behaviour of a machine in one unit control mode. In a State Model, states are arranged in an ordered fashion that is consistent with the specified operation of the machine. The specific states required are dependent on the machine operation.
The compilation of all defined functional states and their transitions is called the Base State Model.</p>
</blockquote>
<p>状态模型完全定义了设备在一种模式下的行为。在状态模型中，状态严格按照设备的控制流有序排列。而所需的特定状态则需要通过规定的状态转换得来。</p>
<p>定义了所有的功能状态及其转换的模型称为<strong>基本状态模型</strong>。</p>
<h3 id="基本状态模型base-state-model">基本状态模型（Base State Model）</h3>
<p><img
        class="lazyload"
        src="/svg/loading.min.svg"
        data-src="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e5%9f%ba%e6%9c%ac%e7%8a%b6%e6%80%81%e6%a8%a1%e5%9e%8b.png"
        data-srcset="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e5%9f%ba%e6%9c%ac%e7%8a%b6%e6%80%81%e6%a8%a1%e5%9e%8b.png, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e5%9f%ba%e6%9c%ac%e7%8a%b6%e6%80%81%e6%a8%a1%e5%9e%8b.png 1.5x, https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-%e5%9f%ba%e6%9c%ac%e7%8a%b6%e6%80%81%e6%a8%a1%e5%9e%8b.png 2x"
        data-sizes="auto"
        alt="https://gitee.com/jacobcj/blog-pic/raw/master/img/PackML-基本状态模型.png"
        title="基本状态模型" /></p>
<ul>
<li><em>深灰色轮廓内的状态可以转换为 STOPPING 状态或 ABORTING 状态。</em></li>
<li><em>浅灰色轮廓内的状态可以转换为 ABORTING 状态。</em></li>
</ul></div><div class="post-footer" id="post-footer">
    <div class="post-info">
        <div class="post-info-line">
            <div class="post-info-mod">
                <span>更新于 2023-08-20</span>
            </div></div>
        <div class="post-info-line">
            <div class="post-info-md"><span>
                            <a class="link-to-markdown" href="/packml_01machinestate/index.md" target="_blank">阅读原始文档</a>
                        </span></div>
            <div class="post-info-share">
                <span></span>
            </div>
        </div>
    </div>

    <div class="post-info-more">
        <section class="post-tags"><i class="fas fa-tags fa-fw" aria-hidden="true"></i>&nbsp;<a href="/tags/pack_ml/">pack_ml</a></section>
        <section>
            <span><a href="javascript:void(0);" onclick="window.history.back();">返回</a></span>&nbsp;|&nbsp;<span><a href="/">主页</a></span>
        </section>
    </div>

    <div class="post-nav">
            <a href="/packml_02modes/" class="next" rel="next" title="PackML从会到不会——模式（2）">PackML从会到不会——模式（2）<i class="fas fa-angle-right fa-fw" aria-hidden="true"></i></a></div>
</div>
</article></div>
            </main><footer class="footer">
        <div class="footer-container"><div class="footer-line">由 <a href="https://gohugo.io/" target="_blank" rel="noopener noreffer" title="Hugo 0.115.4">Hugo</a> 强力驱动 | 主题 - <a href="https://github.com/dillonzq/LoveIt" target="_blank" rel="noopener noreffer" title="LoveIt 0.2.11"><i class="far fa-kiss-wink-heart fa-fw" aria-hidden="true"></i> LoveIt</a>
                </div><div class="footer-line" itemscope itemtype="http://schema.org/CreativeWork"><i class="far fa-copyright fa-fw" aria-hidden="true"></i><span itemprop="copyrightYear">2023 - 2024</span><span class="author" itemprop="copyrightHolder">&nbsp;<a href="/" target="_blank">Jacob Chen</a></span>&nbsp;|&nbsp;<span class="license"><a rel="license external nofollow noopener noreffer" href="https://creativecommons.org/licenses/by-nc-sa/4.0/" target="_blank">CC BY-NC-SA 4.0</a></span></div>
        </div>
    </footer></div>

        <div id="fixed-buttons"><a href="#" id="back-to-top" class="fixed-button" title="回到顶部">
                <i class="fas fa-arrow-up fa-fw" aria-hidden="true"></i>
            </a><a href="#" id="view-comments" class="fixed-button" title="查看评论">
                <i class="fas fa-comment fa-fw" aria-hidden="true"></i>
            </a>
        </div><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/autocomplete.js@0.38.1/dist/autocomplete.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lunr@2.3.9/lunr.min.js"></script><script type="text/javascript" src="/lib/lunr/lunr.stemmer.support.min.js"></script><script type="text/javascript" src="/lib/lunr/lunr.zh.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/lazysizes@5.3.2/lazysizes.min.js"></script><script type="text/javascript" src="https://cdn.jsdelivr.net/npm/clipboard@2.0.11/dist/clipboard.min.js"></script><script type="text/javascript">window.config={"code":{"copyTitle":"复制到剪贴板","maxShownLines":50},"comment":{},"search":{"highlightTag":"em","lunrIndexURL":"/index.json","lunrLanguageCode":"zh","lunrSegmentitURL":"/lib/lunr/lunr.segmentit.js","maxResultLength":10,"noResultsFound":"没有找到结果","snippetLength":30,"type":"lunr"}};</script><script type="text/javascript" src="/js/theme.min.js"></script></body>
</html>
